package com.sgb.kjwl.api.service;


import com.sgb.jicai.entity.FilterEntity;
import com.sgb.kjwl.model.entity.LeaseSearchResultEntity;
import com.sgb.kjwl.model.entity.LeaseSearchResultTypeEntity;
import com.sgb.kjwl.model.entity.self.LeaseAskStateEntity;
import com.sgb.kjwl.model.entity.self.LeaseMemberDetailEntity;
import com.sgb.kjwl.model.entity.self.LeaseMemberListEntity;
import com.swgk.core.view.entity.MenuEntity;
import com.swgk.core.base.model.entity.H5ReEntity;
import com.sgb.kjwl.model.entity.lease.LeaseOrderInfoEntity;
import com.swgk.core.util.PickSelectEntity;
import com.sgb.kjwl.model.entity.lease.AskLeaseItemEntity;
import com.sgb.kjwl.model.entity.lease.CarListEntity3;
import com.sgb.kjwl.model.entity.lease.DeviceListEntity3;
import com.sgb.kjwl.model.entity.lease.LeaseDemandListEntity;
import com.sgb.kjwl.model.entity.lease.LeaseListEntity;
import com.sgb.kjwl.model.entity.lease.LeaseOrderConfirmEntity;
import com.sgb.kjwl.model.entity.lease.LeaseOrderEntity;
import com.sgb.kjwl.model.entity.lease.LeaseOrderInvoiceEntity;
import com.sgb.kjwl.model.entity.lease.LeaseOrderListEntity;
import com.sgb.kjwl.model.entity.lease.LeaseOrderPaymentEntity;
import com.sgb.kjwl.model.entity.lease.LeaseOrderReceiveEntity;
import com.sgb.kjwl.model.entity.lease.OrderSnapshotEntity;
import com.sgb.kjwl.model.entity.lease.ProductPriceEntity;
import com.sgb.kjwl.model.entity.request.FactoryFilterJson;
import com.sgb.kjwl.model.entity.request.FarmFilterJson;
import com.sgb.kjwl.model.entity.request.HouseFilterJson;
import com.sgb.kjwl.model.entity.request.LandFilterJson;
import com.sgb.kjwl.model.entity.request.LeaseDemandEntity;
import com.sgb.kjwl.model.entity.request.LeaseFilterJson;
import com.sgb.kjwl.model.entity.request.LeaseSearchFilterJson;
import com.sgb.kjwl.model.entity.request.MachineFilterJson3;
import com.sgb.kjwl.model.entity.self.LeaseFactoryEntity;
import com.sgb.kjwl.model.entity.self.LeaseFarmEntity;
import com.sgb.kjwl.model.entity.self.LeaseHousesEntity;
import com.sgb.kjwl.model.entity.self.LeaseLandEntity;
import com.sgb.kjwl.model.entity.self.LeaseStateEntity;
import com.sgb.kjwl.model.entity.supplier3.DictEntity3;
import com.sgb.kjwl.model.entity.supplier3.MachineDictEntity;
import com.sgb.kjwl.model.entity.user.AddMachineOutEntity;
import com.sgb.kjwl.model.entity.user.PublicMyPriceEntity;
import com.sgb.kjwl.model.entity.user.UnitEntity;
import com.swgk.core.base.model.entity.ListResponse;
import com.sgb.kjwl.model.response.ListResponse2;
import com.swgk.core.base.model.entity.BaseEntity;
import com.swgk.core.base.model.factory.BaseUrlInterceptor;

import java.util.List;
import java.util.Map;

import retrofit2.Call;
import retrofit2.http.Body;
import retrofit2.http.Field;
import retrofit2.http.FormUrlEncoded;
import retrofit2.http.GET;
import retrofit2.http.Headers;
import retrofit2.http.POST;
import retrofit2.http.Query;

/**
 * 租赁经营
 */
public interface LeaseAPI {

    /**
     * 租参数值：application/json   形式   需要使用Map
     * 参数值：application/x-www-form-urlencoded   使用键值对形式   （添加@FormUrlEncoded）
     * 参数值：application/x-www-form-urlencoded   使用键值对形式  (@Query  不添加@FormUrlEncoded)
     *
     * @param pageNum
     * @param pageSize
     * @param isAcceptQuote
     * @return
     */
    //租赁经营——我的报价----------
    @Headers({BaseUrlInterceptor.HEADERS_URL_ZL, "tokenType:pc"})
    @GET("v1/app/quotement/getMyQuoteList")
    Call<BaseEntity<PublicMyPriceEntity>> getPackersFinanceList(@Query("pageNum") int pageNum,
                                                                @Query("pageSize") int pageSize,
                                                                @Query("isAcceptQuote") String isAcceptQuote,
                                                                @Query("categoryType") String categoryType,
                                                                @Query("titleOrCompanyName") String titleOrCompanyName,
                                                                @Query("titleOrDemandCompanyName") String titleOrDemandCompanyName,
                                                                @Query("type") String type);

    @POST("v1/app/quote/getCategory")
    Call<BaseEntity<List<PickSelectEntity>>> getQuoteCategory();

    //租赁经营——删除报价
    @FormUrlEncoded
    @GET("v1/app/quotement/deleteMyQuote")
    Call<BaseEntity> deleteMyQuote(@Field("no") String no);

//    //更改保价--（工程设备-一键报价（机械，设备，房产，车辆））
//    @POST("v1/app/equiment/saveQuote")
//    Call<BaseEntity> changMyQuote(@Body Map map);

    //H5详情
    @FormUrlEncoded
    @POST("v1/app/common/getUrlSetting")
    Call<BaseEntity<H5ReEntity>> getUrlSetting(@Field("param") String param);

    /*************************************租赁-公共接口**********************************************/
    //税率列表
    @GET("v1/app/AppRealLand/getRate")
    Call<BaseEntity<List<PickSelectEntity>>> getLeaseRate();

    //租赁时长单位
    @Headers({BaseUrlInterceptor.HEADERS_URL_ZL, "tokenType:pc"})
    @POST("v1/app/rentInfo/getDurationPriceUnitList")
    Call<BaseEntity<List<PickSelectEntity<List<PickSelectEntity>>>>> getLeaseTimeUnit(@Body Map map);

    //获取登录人的直属部门
    @GET("v1/app/equipmentRent/getUserDepartmentImg")
    Call<BaseEntity<List<PickSelectEntity>>> getUserDepartmentImg();

    //判断公司是否有审批
    @GET("v1/app/leasesearch/haveApprovalOrNot")
    Call<BaseEntity> haveApprovalOrNot(@Query("companyNo") String companyNo, @Query("type") String type);

    //获取租赁出租所有模块类目信息
    @GET("v1/app/equiment/getAllCategoryList")
    Call<BaseEntity<List<MenuEntity<MenuEntity<MenuEntity>>>>> getLeaseAllCategoryList();

    //个人中心 - 出租发布列表
    @POST("v1/app/leasepublic/getLeasePersonalList")
    Call<BaseEntity<ListResponse<List<LeaseStateEntity>>>> getLeasePersonalList(@Body Map map);

    //个人中心 - 求租发布列表
    @Headers({BaseUrlInterceptor.HEADERS_URL_ZL, "tokenType:pc"})
    @POST("v1/app/leasepublic/getAskRentPersonalList")
    Call<BaseEntity<ListResponse<List<LeaseAskStateEntity>>>> getAskRentPersonalList(@Body Map map);

    //出租大厅和自营大厅(机械,设备,车辆,房产,土地,工厂,农机)
    @Headers({BaseUrlInterceptor.HEADERS_URL_ZL, "tokenType:pc"})
    @POST("v1/app/leasepublic/rentalAndEmployedHall")
    Call<BaseEntity<ListResponse<List<LeaseListEntity>>>> rentalAndEmployedHall(@Body LeaseFilterJson filterJson);

    //机械/设备 发布时获取属性列表(categoryType:1为机械2为设备,firstCategoryNo:一级分类,secondCategoryNo:二级分类)
    @POST("v1/app/leasepublic/getAttributeList")
    Call<BaseEntity<List<FilterEntity<List<FilterEntity>>>>> getAttributeList(@Body Map map);

    /*************************************租赁-首页搜索**********************************************/

    //租赁-搜索
    @POST("v1/app/leasesearch/getLeaseHomeSearch")
    Call<BaseEntity<ListResponse<List<LeaseSearchResultEntity>>>> getLeaseHomeSearch(@Body LeaseSearchFilterJson filterJson);

    //租赁-搜索
    @POST("v1/app/leasesearch/getLeaseHomeSearch")
    Call<BaseEntity<ListResponse2<List<LeaseSearchResultEntity>>>> getLeaseHomeSearchs(@Body Map map);

    //租赁-搜索-类目查询
    @POST("v1/app/leasesearch/getLeaseType")
    Call<BaseEntity<List<LeaseSearchResultTypeEntity>>> getLeaseType();

    //租赁-搜索-分类查询
    @POST("v1/app/leasesearch/getCategory")
    Call<BaseEntity<List<DictEntity3>>> getCategory(@Body Map map);

    //租赁-搜索-搜索热词
    @POST("v1/app/leasesearch/getHotKey")
    Call<BaseEntity<List<String>>> getHotKey(@Query("areacode") String areacode);

    //租赁-搜索-搜索提示
    @GET("v1/app/leasemap/getCatoryPrompt")
    Call<BaseEntity<List<DictEntity3>>> getCatoryPrompt(@Query("word") String word);

    /************************************出租订单模块***********************************************/

    //租赁订单-获取订单列表
    @Headers({BaseUrlInterceptor.HEADERS_URL_ZL, "tokenType:pc"})
    @POST("v1/app/leaseorder/getList")
    Call<BaseEntity<ListResponse<List<LeaseOrderListEntity>>>> getList(@Body Map map);

    //租赁订单-获取订单列表--个人中心
    @Headers({BaseUrlInterceptor.HEADERS_URL_ZL, "tokenType:pc"})
    @POST("v1/app/leaseorder/getOrderList")
    Call<BaseEntity<ListResponse<List<LeaseOrderListEntity>>>> getOrderList(@Body Map map);

    //订单-获取订单专用详情
    @GET("v1/app/leaseorder/getSnapshot")
    Call<BaseEntity<OrderSnapshotEntity>> getSnapshot(@Query("idOrNo") String idOrNo, @Query("model") String model);

    //订单-获取出租信息价格单位组信息
    @GET("v1/app/leaseorder/getPriceImg")
    Call<BaseEntity<ProductPriceEntity>> getPriceImg(@Query("no") String no, @Query("model") String model, @Query("unitNo") String unitNo);

    //租赁订单-新增/编辑订单
    @Headers({BaseUrlInterceptor.HEADERS_URL_ZL, "tokenType:pc"})
    @POST("v1/app/leaseorder/addOrUpdate")
    Call<BaseEntity> leaseOrderAddOrUpdate(@Body LeaseOrderEntity entity);

    //租入订单-付款申请
    @Headers({BaseUrlInterceptor.HEADERS_URL_ZL, "tokenType:pc"})
    @POST("v1/app/leaseorder/applyForOrder")
    Call<BaseEntity> applyForOrder(@Body LeaseOrderPaymentEntity entity);

    //租入订单-申请确认
    @Headers({BaseUrlInterceptor.HEADERS_URL_ZL, "tokenType:pc"})
    @POST("v1/app/leaseorder/rentInOrderConfirm")
    Call<BaseEntity> rentInOrderConfirm(@Body LeaseOrderConfirmEntity entity);

    //租出订单-申请确认
    @Headers({BaseUrlInterceptor.HEADERS_URL_ZL, "tokenType:pc"})
    @POST("v1/app/leaseorder/acceptOrder")
    Call<BaseEntity> acceptOrder(@Body LeaseOrderReceiveEntity entity);

    //租赁订单-获取企业发票列表
    @Headers({BaseUrlInterceptor.HEADERS_URL_ZL, "tokenType:pc"})
    @GET("v1/app/leaseorder/getInvoicelist")
    Call<BaseEntity<List<LeaseOrderInvoiceEntity>>> getInvoicelist(@Query("pageNum") int pageNum, @Query("pageSize") int pageSize);

    //租赁订单-获取个人发票列表
    @Headers({BaseUrlInterceptor.HEADERS_URL_ZL, "tokenType:pc"})
    @GET("v1/app/leaseorder/getPersonInvoicelist")
    Call<BaseEntity<ListResponse<List<LeaseOrderInvoiceEntity>>>> getPersonInvoicelist(@Query("pageNum") int pageNum, @Query("pageSize") int pageSize);

    //租赁订单-新增发票列表
    @Headers({BaseUrlInterceptor.HEADERS_URL_ZL, "tokenType:pc"})
    @POST("v1/app/leaseorder/personalInvoiceInfo/save")
    Call<BaseEntity> personalInvoiceInfo(@Body Map map);

    //租赁订单-删除
    @Headers({BaseUrlInterceptor.HEADERS_URL_ZL, "tokenType:pc"})
    @GET("v1/app/leaseorder/deleteOrder")
    Call<BaseEntity> deleteOrder(@Query("orderNo") String orderNo, @Query("type") String type);

    //租赁订单-订单详情
    @Headers({BaseUrlInterceptor.HEADERS_URL_ZL, "tokenType:pc"})
    @GET("v1/app/leaseorder/getDateil")
    Call<BaseEntity<LeaseOrderInfoEntity>> getOrderDetail(@Query("orderNo") String orderNo);

    /************************************出租快捷需求模块***********************************************/

    //快捷需求-筛选列表
    @POST("v1/app/quickRelease/getPersonalList")
    Call<BaseEntity<ListResponse<List<LeaseDemandListEntity>>>> getPersonalList(@Body Map map);

    //快捷需求-删除
    @GET("v1/app/quickRelease/delete")
    Call<BaseEntity> deleteDemand(@Query("no") String no);

    //快捷需求-删除
    @POST("v1/app/quickRelease/publish")
    Call<BaseEntity> publishDemand(@Body LeaseDemandEntity entity);

    /************************************机械出租模块*************************************/
    //获取机械一级分类
    @POST("v1/app/machinery/firstCategory")
    Call<BaseEntity<List<DictEntity3>>> getCategorySelectMachine();

    //机械出租-上下架
    @GET("v1/app/rentInfo/putOutMachine")
    Call<BaseEntity> offShelfMachine(@Query("no") String no, @Query("status") String status);

    //机械出租-删除
    @GET("v1/app/rentInfo/deleteMachine")
    Call<BaseEntity> deleteMachine(@Query("no") String no);

    //出租大厅 -排序方式
    @POST("v1/app/leasepublic/getLeaseSortWay")
    Call<BaseEntity<List<DictEntity3>>> getLeaseSortWay();

    //出租大厅-属性筛选列表
    @POST("v1/app/rentInfo/getAttributeList")
    Call<BaseEntity<List<MachineDictEntity>>> getAttributeList(@Query("categoryNo") String categoryNo, @Query("typeNo") String typeNo);
    //出租大厅-属性筛选列表
    @POST("v1/app/rentInfo/getAttributeList")
    Call<BaseEntity<List<DictEntity3>>> getAttributeList2(@Query("categoryNo") String categoryNo, @Query("typeNo") String typeNo);

//    //机械出租-列表筛选(已废弃)
//    @POST("v1/app/leasepublic/getRentLeaseAll")
//    Call<BaseEntity<ListResponse<List<MachineListEntity3>>>> getRentLeaseAll(@Body LeaseMachineFilterJson filterJson);

    //新增机械出租发布
    @Headers({BaseUrlInterceptor.HEADERS_URL_ZL, "tokenType:pc"})
    @POST("v1/app/rentInfo/addOrupdate")
    Call<BaseEntity> addOrUpdateMachine(@Body AddMachineOutEntity entity);

    //获取机械出租详情
    @Headers({BaseUrlInterceptor.HEADERS_URL_ZL,"tokenType:pc"})
    @GET("v1/app/rentInfo/getMachineDetail")
    Call<BaseEntity<AddMachineOutEntity>> getPublishMachineOutDetail(@Query("no") String no);

    /************************************设备出租模块*************************************/
    //获取设备一级分类
    @POST("v1/app/equipment/equipmentFirstCategory")
    Call<BaseEntity<List<DictEntity3>>> getCategorySelectDevice();

    //设备出租-上下架
    @GET("v1/app/equipmentRent/upOrDown")
    Call<BaseEntity> offShelfDevice(@Query("no") String no, @Query("status") String status);

    //设备出租-删除
    @GET("v1/app/equipmentRent/delete")
    Call<BaseEntity> deleteDevice(@Query("no") String n);

    //设备出租-筛选列表
    @POST("v1/app/equipment/equipmentListV1")
    Call<BaseEntity<ListResponse<List<DeviceListEntity3>>>> getAllListDevice(@Body MachineFilterJson3 filterJson);

    /************************************车辆出租模块*************************************/
    //获取车辆一级分类
    @POST("v1/app/car/carModel")
    Call<BaseEntity<List<DictEntity3>>> getCategorySelectCar();

    //车辆出租-筛选列表
    @POST("v1/app/car/rentList")
    Call<BaseEntity<ListResponse<List<CarListEntity3>>>> getAllListCar(@Body MachineFilterJson3 filterJson);

    /************************************房产出租模块***********************************************/
    //房产出租-获取一级分类
    @POST("v1/app/estate/getParentEstateType")
    Call<BaseEntity<List<DictEntity3>>> getParentEstateTypeHouse();

    //房产出租-获取二级分类
    @GET("v1/app/estate/getChildType")
    Call<BaseEntity<List<DictEntity3>>> getChildTypeHouse(@Query("parentId") String parentId);

    //房产出租-获取房产面积列表
    @GET("v1/app/estate/getAreaNum")
    Call<BaseEntity<List<DictEntity3>>> getAreaNumHouse();

    //房产出租-获取房产排序方式
    @GET("v1/app/estate/getSortWay")
    Call<BaseEntity<List<DictEntity3>>> getSortWayHouse();

    //房产出租-获取房产出租编辑详情
    @Headers({BaseUrlInterceptor.HEADERS_URL_ZL,"tokenType:pc"})
    @GET("v1/app/estate/getDetail")
    Call<BaseEntity<LeaseHousesEntity>> getDetailHouse(@Query("id") String id);

    //房产出租-获取房产出租筛选列表
    @POST("v1/app/estateRent/getAllList")
    Call<BaseEntity<ListResponse<List<LeaseHousesEntity>>>> getAllListHouse(@Body HouseFilterJson filterJson);

    //房产出租-获取房产出租个人中心列表
    @POST("v1/app/estate/getAllMyList")
    Call<BaseEntity<ListResponse<List<LeaseHousesEntity>>>> getAllMyListHouse(@Body Map map);

    //房产出租-房产出租新增/编辑
    @POST("v1/app/estate/addOrUpdateEstate")
    Call<BaseEntity> addOrUpdateEstateHouse(@Body LeaseHousesEntity entity);

    //房产出租-房产上下架(1上架,2下架)
    @GET("v1/app/estate/upOrDown")
    Call<BaseEntity> offShelfHouse(@Query("id") String id, @Query("status") String status);

    //房产出租-房产删除
    @POST("v1/app/estate/delete")
    Call<BaseEntity> deleteHouse(@Query("id") String id);

    //房产出租-获取房产租赁价格列表
    @GET("v1/app/realNeedEstate/getEstatePriceUnit")
    Call<BaseEntity<List<UnitEntity>>> getEstatePriceUnitHouse();

    /************************************土地出租模块***********************************************/
    //土地一级分类
    @GET("v1/app/landlease/getFirstCategory")
    Call<BaseEntity<List<DictEntity3>>> getParentEstateTypeLand();

    //土地二级分类
    @GET("v1/app/landlease/getSecondCategory")
    Call<BaseEntity<List<DictEntity3>>> getChildTypeLand(@Query("parentNo") String parentNo);

    //土地二级联动分类
    @GET("v1/app/landlease/getAllCategory")
    Call<BaseEntity<List<AskLeaseItemEntity<List<AskLeaseItemEntity>>>>> getAllCategoryLand();

    //土地面积列表
    @GET("v1/app/landlease/getAreaNum")
    Call<BaseEntity<List<DictEntity3>>> getAreaNumLand();

    //土地所有权列表
    @GET("v1/app/landlease/getBelong")
    Call<BaseEntity<List<DictEntity3>>> getBelongLand();

    //土地排序方式
    @GET("v1/app/landlease/getSortWay")
    Call<BaseEntity<List<DictEntity3>>> getSortWayLand();

    //土地出租编辑详情
    @Headers({BaseUrlInterceptor.HEADERS_URL_ZL,"tokenType:pc"})
    @GET("v1/app/landlease/getDetail")
    Call<BaseEntity<LeaseLandEntity>> getDetailLand(@Query("id") String id);

    //土地出租筛选列表
    @POST("v1/app/landlease/getHomeList")
    Call<BaseEntity<ListResponse<List<LeaseLandEntity>>>> getAllListLand(@Body LandFilterJson filterJson);

    //土地出租个人中心列表
    @POST("v1/app/landlease/getMylist")
    Call<BaseEntity<ListResponse<List<LeaseLandEntity>>>> getAllMyListLand(@Body Map map);

    //土地出租新增/编辑
    @POST("v1/app/landlease/addOrUpdate")
    Call<BaseEntity> addOrUpdateEstateLand(@Body LeaseLandEntity entity);

    //土地上下架(1上架,0下架)
    @GET("v1/app/landlease/upOrDown")
    Call<BaseEntity> offShelfLand(@Query("id") String id, @Query("status") String status);

    //土地删除
    @GET("v1/app/landlease/delete")
    Call<BaseEntity> deleteLand(@Query("id") String id);

    //土地租赁价格列表
    @GET("v1/app/landlease/getPriceUnit")
    Call<BaseEntity<List<UnitEntity>>> getPriceUnitLand();

    /*************************************工厂出租模块*******************************************************/
    //工厂 发布一级分类二级分类联动
    @POST("v1/app/factory/center/getCategorySelect")
    Call<BaseEntity<List<AskLeaseItemEntity<List<AskLeaseItemEntity>>>>> getAllTypeFactory();

    //工厂 列表一级分类/二级分类(参数为0为一级分类)
    @POST("v1/app/factory/getCategorySelect")
    Call<BaseEntity<List<DictEntity3>>> getCategorySelectFactory(@Query("parentNo") String parentNo);

    //工厂面积列表
    @GET("v1/app/factory/factoryRentalArea")
    Call<BaseEntity<List<DictEntity3>>> getAreaNumFactory();

    //工厂出租详情
    @Headers({BaseUrlInterceptor.HEADERS_URL_ZL,"tokenType:pc"})
    @GET("v1/app/factory/detail")
    Call<BaseEntity<LeaseFactoryEntity>> getDetailFactory(@Query("id") String id);

    //工厂出租筛选列表
    @POST("v1/app/factory/homeList")
    Call<BaseEntity<ListResponse<List<LeaseFactoryEntity>>>> getAllListFactory(@Body FactoryFilterJson filterJson);

    //工厂出租个人中心列表
    @POST("v1/app/factory/center/publishList")
    Call<BaseEntity<ListResponse<List<LeaseFactoryEntity>>>> getAllMyListFactory(@Body Map map);

    //工厂出租新增/编辑
    @POST("v1/app/factory/center/publish")
    Call<BaseEntity> publishFactory(@Body LeaseFactoryEntity entity);

    //工厂上下架(1上架,0下架)
    @GET("v1/app/factory/center/upDown")
    Call<BaseEntity> offShelfFactory(@Query("id") String id, @Query("state") String state);

    //工厂删除
    @POST("v1/app/factory/center/delete")
    Call<BaseEntity> deleteFactory(@Query("id") String id);

    //工厂租赁价格单位列表
    @GET("v1/app/factory/center/priceUnitSelect")
    Call<BaseEntity<List<UnitEntity>>> getPriceUnitSelectFactory();

    //工厂防火等级列表
    @GET("v1/app/factory/fireLevelSelect")
    Call<BaseEntity<List<DictEntity3>>> fireLevelSelectFactory();

    //工厂楼层列表
    @GET("v1/app/factory/getFloorSelect")
    Call<BaseEntity<List<DictEntity3>>> getFloorSelectFactory();

    /**********************************农机出租模块**************************************************/

    //农机出租筛选列表
    @POST("v1/app/farmMachinery/homeList")
    Call<BaseEntity<ListResponse<List<LeaseFarmEntity>>>> getAllListFarm(@Body FarmFilterJson filterJson);

    //农机出租个人中心发布列表
    @POST("v1/app/farmMachinery/center/publishList")
    Call<BaseEntity<ListResponse<List<LeaseFarmEntity>>>> getAllMyListFarm(@Body Map map);

    //农机出租发布 一级分类二级分类联动
    @POST("v1/app/farmMachinery/center/getCategorySelect")
    Call<BaseEntity<List<AskLeaseItemEntity<List<AskLeaseItemEntity>>>>> getCategorySelectFarm();

    //农机分类,类型(parentNo = 父级no，一级传0)
    @GET("v1/app/farmMachinery/getCategorySelect")
    Call<BaseEntity<List<DictEntity3>>> getCategorySelectFarm(@Query("parentNo") String parentNo);

    //农机出租新增/编辑
    @POST("v1/app/farmMachinery/center/publish")
    Call<BaseEntity> publishFarm(@Body LeaseFarmEntity entity);

    //农机详情
    @Headers({BaseUrlInterceptor.HEADERS_URL_ZL,"tokenType:pc"})
    @GET("v1/app/farmMachinery/detail")
    Call<BaseEntity<LeaseFarmEntity>> detailFarm(@Query("no") String no);

    //农机租赁价格单位列表
    @GET("v1/app/farmMachinery/center/priceUnitSelect")
    Call<BaseEntity<List<UnitEntity>>> getPriceUnitSelectFarm();

    //农机上下架(1上架,0下架)
    @GET("v1/app/farmMachinery/center/upDown")
    Call<BaseEntity> offShelfFarm(@Query("no") String no, @Query("state") String state);

    //农机删除
    @POST("v1/app/farmMachinery/center/delete")
    Call<BaseEntity> deleteFarm(@Query("no") String no);

    //出租大厅（自营）排序方式
    @Headers({BaseUrlInterceptor.HEADERS_URL_ZL, "tokenType:pc"})
    @GET("v1/app/leasepublic/getLeaseHomeSortWay")
    Call<BaseEntity<List<DictEntity3>>> getLeaseHomeSortWay();

    //通过客服Id获取ImAccount
    @Headers({BaseUrlInterceptor.HEADERS_URL_ZL, "tokenType:pc"})
    @GET("v1/app/leasepublic/getImByCustomerId")
    Call<BaseEntity> getImByCustomerId(@Query("customerId") String customerId);

    //出租大厅（自营）排序方式(type:1成员单位 ，2会员单位)
    @Headers({BaseUrlInterceptor.HEADERS_URL_ZL, "tokenType:pc"})
    @GET("v1/app/leasepublic/getMemberByType")
    Call<BaseEntity<List<DictEntity3>>> getMemberByType(@Query("type") int type);

    //个人中心出租会员价信息列表（新增的列表haveVipPrice：2，  会员价管理列表haveVipPrice：1）
    @Headers({BaseUrlInterceptor.HEADERS_URL_ZL, "tokenType:pc"})
    @POST("v1/app/leaseVip/vipPersonalLeaseImg")
    Call<BaseEntity<ListResponse<List<LeaseMemberListEntity>>>> getVipPersonalLeaseImg(@Body Map map);

    //出租信息会员价格详情
    @Headers({BaseUrlInterceptor.HEADERS_URL_ZL, "tokenType:pc"})
    @GET("v1/app/leaseVip/detail")
    Call<BaseEntity<LeaseMemberDetailEntity>> getLeaseVipDetail(@Query("module") String module, @Query("no") String no);

    //出租信息会员价格新增
    @Headers({BaseUrlInterceptor.HEADERS_URL_ZL, "tokenType:pc"})
    @POST("v1/app/leaseVip/add")
    Call<BaseEntity> leaseVipAdd(@Body LeaseMemberDetailEntity entity);

    //结束出租信息会员价格
    @Headers({BaseUrlInterceptor.HEADERS_URL_ZL, "tokenType:pc"})
    @GET("v1/app/leaseVip/cancel")
    Call<BaseEntity> leaseVipCancel(@Query("no") String no);

    //检查出租信息是否能报价
    @Headers({BaseUrlInterceptor.HEADERS_URL_ZL, "tokenType:pc"})
    @GET("v1/app/leaseVip/checkVipPriceAdd")
    Call<BaseEntity> checkVipPriceAdd(@Query("module") String module,@Query("no") String no);

}
